function SuperFun (name,age) {
    // 公共的属性
    this.name = name
    this.age = age
    this.has = ['头发','眼睛','鼻子']
}
// 公共方法
SuperFun.prototype.getSuperValue = function () {
    console.log('都有'+this.has);
    console.log(this.age+'岁'+this.name+'在晨跑锻炼');
}
function SubFun (name,age) {
   //  通过拷贝父类
   SuperFun.call(this,name,age)
   // 所有子类都有父类实例函数的副本
}

// 实例对象
let zhangsan = new SubFun('张三',11)
//zhangsan.getSuperValue()  // Uncaught TypeError: zhangsan.getSuperValue is not a function
zhangsan.has.push('大长腿')
console.log(...zhangsan.has); //头发 眼睛 鼻子 大长腿

let lisi = new SubFun('李四',10)
//lisi.getSuperValue()  // Uncaught TypeError: zhangsan.getSuperValue is not a function
lisi.has.push('乌黑头发')
console.log(...lisi.has); //头发 眼睛 鼻子 乌黑头发

/*
缺点：
只能继承父类的实例属性和方法，无法继承原型上的属性和方法
无法实现复用，所有子类都有父类实例函数的副本，影响性能
*/ 